package requestparam

// type TransParam struct {
// 	Path  string `json:"path" form:"path"`
// 	Scale string `json:"scale" form:"scale"`
// }

type PageInfo struct {
	Page     int    `json:"page" form:"page"`
	PageSize int    `json:"page_size" form:"page_size"`
	Order    string `json:"order" form:"order"`
}

func (info *PageInfo) ParseDefault() {
	if info.Page == 0 {
		info.Page = 1
	}
	if info.PageSize == 0 {
		info.PageSize = 10
	}
	if info.Order == "" {
		info.Order = "id desc"
	}
}

type QueryUserParam struct {
	PageInfo
	Id       int    `json:"id" form:"id"`
	UserName string `json:"user_name" form:"user_name"`
	Name     string `json:"name" form:"name"`
	Active   string `json:"active" form:"active"`
	ModuleId int    `json:"module_id" form:"module_id"`
	RoleId   int    `json:"role_id" form:"role_id"`
}

type CheckAuthParam struct {
	Token  string `json:"token" form:"token"`
	Module string `json:"module" form:"module"`
	Method string `json:"method" form:"method"`
	Path   string `json:"path" form:"path"`
}

type QueryLimitParam struct {
	PageInfo
	ModuleId  int    `json:"module_id" form:"module_id"`
	Name      string `json:"name" form:"name"`
	LimitType int    `json:"limit_type" form:"limit_type"`
	MenuId    int    `json:"menu_id" form:"menu_id"`
}

type QueryModuleParam struct {
	PageInfo
	Name string `json:"name" form:"name"`
	Code string `json:"code" form:"code"`
}

type CommonQueryParam struct {
	PageInfo
	Id        int    `json:"id" form:"id"`
	Name      string `json:"name" form:"name"`
	Code      string `json:"code" form:"code"`
	Active    string `json:"active" form:"active"`
	ModuleId  int    `json:"module_id" form:"module_id"`
	RoleId    int    `json:"role_id" form:"role_id"`
	LimitType int    `json:"limit_type" form:"limit_type"`
	MenuId    int    `json:"menu_id" form:"menu_id"`
	UserId    int    `json:"user_id" form:"user_id"`
}

type RoleParam struct {
	Id          int    `json:"id"`
	Name        string `json:"name" form:"name"`
	Description string `json:"description" form:"description"`
	ModuleId    int    `json:"module_id" form:"module_id"`
	LimitIDs    string `json:"limit_ids" form:"limit_ids"`
	MenuIDs     string `json:"menu_ids" form:"menu_ids"`
	IsManager   bool   `json:"is_manager" form:"is_manager"`
}

type LimitParam struct {
	Id        int    `json:"id" form:"id"`
	Name      string `json:"name" form:"name"`
	Code      string `json:"code" form:"code"`
	ModuleId  int    `json:"module_id" form:"module_id"`
	MenuId    int    `json:"menu_id" form:"menu_id"`
	UrlRegex  string `json:"url_regex" form:"url_regex"`
	Method    string `json:"method" form:"method"`
	LimitType int    `json:"limit_type" form:"limit_type"`
}
